<template>
  <div style="padding:0 5px">
    <h3>发表评论</h3>
    <hr />
    <!-- 留言区域 -->
    <!-- Field 是基于 Cell 实现的，可以使用 CellGroup 作为父元素来提供外边框。 -->
    <van-cell-group>
      <van-field v-model="content" placeholder="请输入留言" type="textarea" autosize rows="1" />
    </van-cell-group>
    <!-- 发表评论按钮 -->
    <van-button type="info" @click="addComment">发表评论</van-button>
    <!-- 获取历史评论 -->
    <van-list :finished="finished" finished-text="没有更多了" v-for="(item,i) in commentList" :key="i">
      <!-- 头部 部分 -->
      <div class="head">
        <span>第{{i+1}}楼</span>
        <span>用户：{{item.user_name}}</span>
        <span>发表时间：{{item.add_time | dateFormat}}</span>
      </div>
      <!-- 具体评论内容部分 -->
      <div class="neirong">{{item.content}}</div>
    </van-list>
          <!-- 加载更多 按钮 -->
      <van-button @click="loadmore" plain hairline type="danger">加载更多</van-button>
  </div>
</template>

<script>
export default {
  props: ['id'],
  data () {
    return {
      // 留言区绑定的内容
      content: '',
      // 是否加载完
      finished: false,
      // 评论内容
      commentList: [
        {
          content: '',
          add_time: '',
          user_name: ''
        }
      ],
      pageSize: 1
    }
  },
  created () {
    this.getComments()
  },
  methods: {
    //   点击发表评论
    async addComment () {
      if (this.content.trim() === '') {
        return this.$toast('留言内容不能为空')
      }
      const { data: res } = await this.$http.post(`/api/postcomment/${this.id}`, { content: this.content })
      //   console.log(res)
      if (res.status !== 0) return this.$toast('请求出现错误')
      this.$toast('您的留言已提交成功')
      this.content = ''
      //  刷新评论列表
      this.getComments()
    },
    // 获取评论内容
    async getComments () {
      const { data: res } = await this.$http.get(
        `/api/getcomments/${this.id}?pageindex=${this.pageSize}`
      )
      if (res.status !== 0) {
        return this.$toast('请求评论数据出现错误')
      }
      console.log(res.message)
      this.commentList = res.message
    },
    // 点击 加载更多评论的内容
    async loadmore () {
      this.pageSize++
      const { data: res } = await this.$http.get(
        `/api/getcomments/${this.id}?pageindex=${this.pageSize}`
      )
      if (res.status !== 0) {
        return this.$toast('请求评论数据出现错误')
      }
      this.commentList.push(...res.message)
    }
  }
}
</script>

<style scoped lang="less">
h3 {
  margin: 20px;
}
.van-cell-group {
  overflow: hidden;
  margin: 5px;
}
.van-field {
  border: 1px solid #ccc;
  height: 120px;
  overflow: hidden;
}
.van-button {
  width: 100%;
  margin: 5px 0;
}
.head {
  background-color: #ccc;
  font-size: 12px;
  height: 36px;
  line-height: 30px;
  span {
    display: inline-blok;
    margin-left: 10px;
  }
}
.neirong {
  line-height: 30px;
  text-indent: 2em;
  font-size: 12px;
}
</style>
